package com.shcz.migu.utils;

import android.content.Context;
import android.content.res.Resources;
import android.graphics.Color;
import android.text.TextUtils;

import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.Map;
import java.util.Random;

/**
 * Created by ${jianxin} on 2017/2/25.
 *
 * @描述 ${TODO}
 */

public class MyUtils {


    private static Resources resources;

    public static void init(Context context) {

        resources = context.getResources();
    }

    //这个是在主线程去更新ui,在没有上下文的环境,
    public static void runOnUIThread(Runnable runnable) {
//        App.mainHandler.post(runnable);
    }


    //得到字符串数组信息
    public static String[] getStringArray(int resId) {
        return getResources().getStringArray(resId);
    }


    //得到资源管理的类
    public static Resources getResources() {
        return resources;
    }

    //在屏幕适配时候使用,让代码中使用dip属性
    public static int getDimens(int resId) {

        return getResources().getDimensionPixelSize(resId);
    }

    //得到颜色
    public static int getColor(int resId) {
        return getResources().getColor(resId);
    }

    /**
     * 拿到一个随机颜色
     *
     * @return
     */
    public static int createRandomColor() {
        Random random = new Random();
        return random.nextInt(180);
    }

    // 创建一个随机的颜色
    public static int randomColor() {

        Random random = new Random();
        int red = random.nextInt(180);
        int blue = random.nextInt(180);
        int green = random.nextInt(180);
        System.out.println(red + ":" + blue + ":" + green);
        return Color.rgb(red, green, blue);
        // return 0;
    }


    /**
     * 标准的md5加密
     *
     * @param password 明文
     * @return 密文
     */
    public static String getMD5Standard(String password) {

        try {
            // 信息摘要器
            MessageDigest digest = MessageDigest.getInstance("md5");
            try {
                digest.reset();
                digest.update(password.getBytes("UTF-8"));
            } catch (UnsupportedEncodingException e) {
                e.printStackTrace();
            }
            // 1.把明文变成-byte
            byte[] reusl = digest.digest();
            // 2.遍历byte数组与8个二进制位做与运算
            StringBuffer buffer = new StringBuffer();
            for (byte b : reusl) {
                // 标准的md5加密
                int number = b & 0xff;// 密码学-加盐
                // 3.转换成16进制
                String strNumber = Integer.toHexString(number);
                // 4.补全
                if (strNumber.length() == 1) {
                    buffer.append("0");
                }
                buffer.append(strNumber);
            }
            // 标准的md5加密后的结果了
            return buffer.toString();
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
        }
        return "";
    }

    public static boolean isFillAll(Map<String, String> map) {

        for (String key : map.keySet()) {
            if (TextUtils.isEmpty(map.get(key))) {
                CommonToast.showToast(key + "不能为空");
                return false;
            }
        }
        return true;
    }
}
